Aspects of the invention pertain to pseudo-random number generators. In particular, aspects of the invention relate to combining a plurality of pseudo-random number generators into a combined pseudo-random number generator, such that the combined pseudo-random number generator has better statistical properties than its constituent pseudo-random number generators.
Random number generators and pseudo-random number generators have many practical applications, such as for encrypting digital computer messages and for performing simulations. Pseudo-random number generators are generally constructed using an algorithm that, in some cases, can be inferred by observing the output over a period of time.
Attempts have been made to combine pseudo-random number generators; however, such attempts have typically yielded a combined pseudo-random number generator having worse statistical properties than its constituent components. For example, one prior art combined pseudo-random number generator uses a first pseudo-random number generator to populate a table of numbers, such as, one hundred numbers or a thousand numbers, or any quantity of numbers. A second pseudo-random number generator is used to generate indexes to the table populated by the first pseudo-random number generator. As numbers are selected from the table of numbers, the used entries are replenished by numbers generated by the first pseudo-random number generator. Using such a technique, a combined random number generator with a very large cycle is produced; however, the combined pseudo-random number generator has worse statistical properties than the constituent pseudo-random number generators. For example, there may be more correlation among the random numbers produced by the combined pseudo-random number generator than among the random numbers produced by its constituent parts, or the combined pseudo-random number generator may tend to have more repeated patterns than the numbers produced by its constituent parts.
Consequently, there is a need to provide a random-number generator having improved statistical properties to meet the need for improved encryption and simulation among other things.
A method and an apparatus are provided for combining a plurality of random number generators into a combined random number generator. The outputs of the plurality of generators are interleaved into a combined stream of random numbers selected from each of the plurality of random-number generators. A value of x is calculated by each of the random number generators. Each of the values of x is mapped to a respective arrival time t for each of the random number generators. One of the random number generators having an earliest respective arrival time t is determined. A random number based on the arrival time t is generated.